/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.jfonia.view.symbols;

import org.jfonia.connect5.basics.BasicValueNode;
import org.jfonia.connect5.basics.MutableValueNode;
import org.jfonia.connect5.basics.ValueNode;

/**
 *
 * @author Rik Bauwens
 */
public abstract class GroupSymbol extends Symbol implements ISymbol
{
        private MutableValueNode<Double> xNode;
        private MutableValueNode<Double> yNode;
        private MutableValueNode<Double> widthNode;
        private MutableValueNode<Double> heightNode;

        public GroupSymbol()
        {
                xNode = new BasicValueNode<Double>(0.0);
                yNode = new BasicValueNode<Double>(0.0);
                widthNode = new BasicValueNode<Double>(0.0);
                heightNode = new BasicValueNode<Double>(0.0);
        }

        protected double getX()
        {
                return xNode.getValue();
        }

        protected double getY()
        {
                return yNode.getValue();
        }

        protected double getWidth()
        {
                return widthNode.getValue();
        }

        protected double getHeight()
        {
                return heightNode.getValue();
        }

        protected MutableValueNode<Double> getXNode()
        {
                return xNode;
        }

        protected MutableValueNode<Double> getYNode()
        {
                return yNode;
        }

        public ValueNode<Double> getAbsoluteXNode()
        {
                return xNode;
        }

        public ValueNode<Double> getAbsoluteYNode()
        {
                return yNode;
        }

        public MutableValueNode<Double> getWidthNode()
        {
                return widthNode;
        }

        public MutableValueNode<Double> getHeightNode()
        {
                return heightNode;
        }

}
